package com.allwees.support.fileservice.fileinfo.entity;

import com.allwees.core.common.util.ImageUtil;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

/**
 * 资源文件记录
 *
 * @author yangylsky
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class FileInfo implements Serializable {

    private Long id;

    private String uuid;

    private Date createAt;

    private String relativePath;

    private String bucket;

    /**
     * 资源地址是一个完整的http的url
     */
    private String url;

    /**
     * 资源描述
     */
    private String description;

    /**
     * 资源的原始名称
     */
    private String originalName;

    /**
     * 文件后缀，扩展名
     */
    private String suffix;

    /**
     * 文件大小，以字节为单位
     */
    private Integer size;

    /**
     * 文件存储类型，对应FileService.getType()
     */
    private String type;

    /**
     * 是否是图片格式
     *
     * @return
     */
    public boolean isImage() {
        return ImageUtil.isImage(suffix);
    }

    public String getOldFileName(Boolean withSuffix) {
        if (withSuffix) {
            return originalName;
        } else {
            return originalName.substring(0, originalName.lastIndexOf(suffix));
        }
    }

    public String getNewFileName(Boolean withSuffix) {
        String name = url.substring(url.lastIndexOf("/"));
        if (!withSuffix) {
            name = name.substring(0, name.lastIndexOf(suffix));
        }
        return name;
    }
}
